#ifndef __STDTHREADPOOL_H_
#define __STDTHREADPOOL_H_
#include <list>
#include <thread>
#include <queue>
#include <mutex>
#include <condition_variable>

struct ThreadPrivate;
class StdThreadPool
{
public:
    StdThreadPool(int MaxThreadNumber,int MinThreadNumber,int MaxQueueSize,int second);
    void *ThreadHandler();
    void *ThreadManager();
    void AddPoolTask(void* (*funcPtr)(void*),void *arg);
    ~StdThreadPool();
    friend void  *ThreadHandler();
private:
    ThreadPrivate *p;
};

#endif